package com.bstek.demo;

import java.util.*;

public class Demo {

    private int intValue;

    private Integer integerValue;

    private String stringValue;

    private Date dateValue;

    private List<DemoList> demoListList;

    private Set<DemoSet> demoSetSet;

    private Map<String,DemoMap> demoMapMap;

    private DemoSub demoSub;

    private DemoInnerSub demoInnerSub;

    public Date getDateValue() {
        return dateValue;
    }

    public void setDateValue(Date dateValue) {
        this.dateValue = dateValue;
    }

    public int getIntValue() {
        return intValue;
    }

    public void setIntValue(int intValue) {
        this.intValue = intValue;
    }

    public Integer getIntegerValue() {
        return integerValue;
    }

    public void setIntegerValue(Integer integerValue) {
        this.integerValue = integerValue;
    }

    public String getStringValue() {
        return stringValue;
    }

    public void setStringValue(String stringValue) {
        this.stringValue = stringValue;
    }

    public List<DemoList> getDemoListList() {
        return demoListList;
    }

    public void setDemoListList(List<DemoList> demoListList) {
        this.demoListList = demoListList;
    }

    public Set<DemoSet> getDemoSetSet() {
        return demoSetSet;
    }

    public void setDemoSetSet(Set<DemoSet> demoSetSet) {
        this.demoSetSet = demoSetSet;
    }

    public Map<String, DemoMap> getDemoMapMap() {
        return demoMapMap;
    }

    public void setDemoMapMap(Map<String, DemoMap> demoMapMap) {
        this.demoMapMap = demoMapMap;
    }

    public DemoSub getDemoSub() {
        return demoSub;
    }

    public void setDemoSub(DemoSub demoSub) {
        this.demoSub = demoSub;
    }

    public DemoInnerSub getDemoInnerSub() {
        return demoInnerSub;
    }

    public void setDemoInnerSub(DemoInnerSub demoInnerSub) {
        this.demoInnerSub = demoInnerSub;
    }

    public static class DemoInnerSub {

        String name;
        DemoInnerSubSub demoInnerSubSub;
        private List<DemoInnerSubList> demoInnerSubListList;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public DemoInnerSubSub getDemoInnerSubSub() {
            return demoInnerSubSub;
        }

        public void setDemoInnerSubSub(DemoInnerSubSub demoInnerSubSub) {
            this.demoInnerSubSub = demoInnerSubSub;
        }

        public List<DemoInnerSubList> getDemoInnerSubListList() {
            return demoInnerSubListList;
        }

        public void setDemoInnerSubListList(List<DemoInnerSubList> demoInnerSubListList) {
            this.demoInnerSubListList = demoInnerSubListList;
        }

        public static class DemoInnerSubSub {
            String name;

            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name;
            }
        }

        public static class DemoInnerSubList {
            String name;

            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name;
            }
        }
    }

    public Demo initDemo(){
        intValue = 6;
        integerValue = 6;
        stringValue = "gehongbin";
        // TODO
        dateValue = new Date();
        // TODO
        demoListList = new ArrayList<>();
        demoListList.add(new DemoList());
        // TODO
        demoSetSet = new HashSet<>();
        // TODO
        demoMapMap = new HashMap<>();
        demoSub = new DemoSub();
        demoSub.setName("");
        demoSub.setDemoInnerSubSub(new DemoInnerSub.DemoInnerSubSub());
        demoInnerSub = new DemoInnerSub();
        demoInnerSub.setName("");
        demoInnerSub.setDemoInnerSubSub(new DemoInnerSub.DemoInnerSubSub());
        return this;
    }
}
